export {}

// 泛型函数

// 需求: 传参类型是啥,返回的类型就是啥

// 传入的是number   返回的也是number
// 函数表达式
const getId = <T>(id: T): T => {
  return id
} 

// 获取数字类型的传参
let id = getId<number>(1)

// 获取字符串类型的传参
// 注意提示可能有点问题
let id2 = getId('a')

id2 = 'b'

// 不明确的情况: 有可选参数的时候必须写全泛型

let id3 = getId<{name: string; age?: number}>({name: 'aaa'})